package com.xgq.drink.utils;

import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.Instant;
@Component
public class TimeUtils {

    /**
     * 将 LocalDateTime 转换为时间戳（毫秒）
     *
     * @param localDateTime LocalDateTime 对象
     * @return 时间戳（毫秒）
     */
    public static long toTimestamp(LocalDateTime localDateTime) {
        if (localDateTime == null) {
            throw new IllegalArgumentException("LocalDateTime cannot be null");
        }
        return localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }

    /**
     * 将时间戳（毫秒）转换为 LocalDateTime
     *
     * @param timestamp 时间戳（毫秒）
     * @return LocalDateTime 对象
     */
    public static LocalDateTime fromTimestamp(long timestamp) {
        return LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault());
    }

    /**
     * 获取当前时间的 LocalDateTime
     *
     * @return 当前时间的 LocalDateTime
     */
    public static LocalDateTime getCurrentLocalDateTime() {
        return LocalDateTime.now();
    }

    /**
     * 获取当前时间的时间戳（毫秒）
     *
     * @return 当前时间的时间戳（毫秒）
     */
    public static long getCurrentTimestamp() {
        return System.currentTimeMillis();
    }
}